package com.beasts.antpage.core.entity.content;

import com.beasts.antpage.core.utils.DateUtil;
import com.beasts.antpage.core.utils.servlet.RequestUtil;
import com.beasts.antpage.core.utils.unique.UUIDUtil;
import lombok.Data;

import javax.servlet.http.HttpServletRequest;
import java.io.Serializable;
import java.util.Date;

/**
 * 文章管理
 *
 * @author Locker
 * @date 2018-07-06 17:08:06
 * @since 1.1
 */
@Data
public class ApArticle implements Serializable {

    /**
     * 唯一 id
     */
    private String id;

    /**
     * 标题
     */
    private String title;

    /**
     * 内容
     * <p>mediumtext 可存储16M</p>
     */
    private String content;

    /**
     * 创建者
     */
    private String creator;

    /**
     * 类别
     */
    private String type;

    /**
     * 附件 id
     */
    private String attatchBlobId;

    /**
     * 图片 url
     */
    private String imgUrl;

    /**
     * 文章编号
     */
    private String sno;

    /**
     * 作者
     */
    private String author;

    /**
     * 链接地址（文章可链接到 url）
     * TODO wait 文章链接地址如何使用，配合权限??
     */
    private String href;

    /**
     * 访问量
     */
//    private Integer visitCapacity;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 写作时间
     */
    private Date wroteTime;

    /**
     * 修改者
     */
    private String mendor;

    /**
     * 修改时间
     */
    private Date mendTime;

    /**
     * 生效日期
     */
    private String validDate;

    /**
     * 失效日期
     */
    private String expireDate;

    /**
     * 文章导读
     */
    private String review;

    /**
     * 是否已发布，1 发布，0 未发布
     */
    private String isPub;

    public ApArticle() {
    }

    public ApArticle(HttpServletRequest req) {
        if (null == req.getParameter("id")) {
            this.createTime = new Date();
        }
        this.id = RequestUtil.getValue(req, "id", UUIDUtil.get(true));
        this.title = req.getParameter("title");
        this.sno = req.getParameter("sno");
        this.href = req.getParameter("href");
        this.content = req.getParameter("content");
        this.review = req.getParameter("review");
        this.author = req.getParameter("author");
        this.validDate = DateUtil.dateStringValidParse(req.getParameter("validDate"));
        this.expireDate = DateUtil.dateStringValidParse(req.getParameter("expireDate"));
    }




}
